Skip to content

Migrate test pipeline to Github - #544

Merged
RomeshA merged 16 commits into
mainfrom
github-pages-action
Sep 1, 2026
Merged

Migrate test pipeline to Github#544
RomeshA merged 16 commits into
mainfrom
github-pages-action

Conversation

@RomeshA

@RomeshA RomeshA commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

No description provided.

Manage the docs build environment with astral-sh/setup-uv and uv sync
instead of pip-installing uv into a setup-python interpreter. Track uv.lock
and install with --frozen so the documentation is built from pinned,
reproducible dependency versions, with the uv cache reused across runs.
Run the test suite on GitHub Actions across Ubuntu, macOS, and Windows,
driving pytest directly with uv (uv sync + uv run pytest) rather than tox.
The pytest configuration in tox.ini [pytest] is reused as-is, so junit and
coverage reports are still produced; test results are published with
mikepenz/action-junit-report. The Azure Pipelines test job is left in place
for now, until deployment is also migrated.

Pin the Python version via a tracked .python-version file instead of
hardcoding it, and update the docs workflow to rely on it as well.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

@github-actions

github-actions Bot commented Aug 31, 2026

Copy link
Copy Markdown
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-09-01 01:11 UTC

RomeshA and others added 14 commits September 1, 2026 09:33
Publish to PyPI whenever main is updated (any push, not only PR merges),
after the full cross-platform test suite passes. The test workflow is made
reusable (workflow_call) and invoked as a dependency, so publishing only
proceeds when every matrix leg succeeds.

Follow current packaging best practices: build sdist and wheel with uv on a
job with no publishing rights, then publish from a separate job using PyPI
Trusted Publishing (OIDC) via a dedicated pypi environment, so no API token
is stored. skip-existing avoids failures when main is pushed without a
version bump. The Azure Pipelines deploy job is left in place for now.
PyPI publishing is now handled by the GitHub Actions publish workflow, so
drop the Azure deploy job to avoid two systems publishing to PyPI on main.
The Azure tox test job is kept for now.
Add a CodeCoverageSummary step that renders the Cobertura coverage.xml into
the GitHub Actions job summary, so coverage is visible in the run without
posting a PR comment. Run it only on the Linux matrix leg (Docker action;
coverage is identical across platforms) and never fail the build on it.
Replace the irongut/CodeCoverageSummary Docker action with coverage.py's
built-in markdown report piped to the Actions job summary. This drops a
third-party dependency, stays in sync with the installed coverage version,
and needs no Docker.
CI has fully migrated to GitHub Actions (tests, docs, and PyPI publishing),
so drop azure-pipelines.yml and its dead build-status badge from the README.
Extract the [pytest] section from tox.ini into a dedicated pytest.ini at the
repo root. It stays at the root (not tests/) so testpaths spanning tests/ and
docs/ still resolve. tox continues to read this config for local runs.
Remove tox.ini now that CI runs pytest and Sphinx directly via uv. Update the
README to run the suite with pip/pytest or uv (matching CI) instead of tox,
and refresh the workflow comment that referenced tox.ini.
Restructure installation and usage around uv (uv add, editable installs,
branch dependencies), and move the test instructions to run via
uv run --extra test pytest, matching the GitHub Actions CI. Group advanced
usage and troubleshooting notes together.
networkx (pulled in via hyperopt) requires Python >=3.11, so 3.10 could not
actually resolve the dependency set. Bump requires-python to >=3.11, drop the
3.10 classifier to match the README, and relock.
atomica imports networkx directly (framework and model validation, and the
MCP server), so declare it explicitly rather than relying on it arriving
transitively via hyperopt. The lazy imports in framework.py/model.py are kept
so networkx is only loaded when validation runs.
@RomeshA
RomeshA merged commit 1edc42a into main Sep 1, 2026
5 of 6 checks passed
@RomeshA
RomeshA deleted the github-pages-action branch September 1, 2026 01:11
@RomeshA RomeshA linked an issue Sep 1, 2026 that may be closed by this pull request
@RomeshA RomeshA mentioned this pull request Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bring readme up to date

1 participant